The present disclosure relates generally to data transmission techniques. More particularly, the present disclosure concerns a technique for efficiently managing data transfers between networked devices.
The use of computer networks and devices has become widespread, and many of the advantages of such networks and devices are well-known. For instance, these networks and devices allow an increasingly vast amount of data to be electronically stored, transferred, and processed at increasingly rapid speeds. As the storage and processing capabilities of such resources increase, however, the demands that are placed on such resources also increase. For instance, resource-intensive software applications are continuously created to take advantage of the improved capabilities of computing devices, and the size of data files stored and communicated within such networks is similarly rising. This is particularly true of image data files. As imaging technology advances, larger and larger amounts of data are being collected from imaging devices and must typically be stored in a computer hard drive or some other storage medium.
It will be appreciated that, rather than locally storing large data files on any electronic device that may desire access to the data, such data files may be stored at a central location, such as a server or some other centralized storage system, and communicated over a network on an as-needed basis. This greatly reduces the need to maintain multiple copies of the same data on different machines, thus reducing the amount of required resources and the cost associated with maintaining electronic data. One drawback to such centralized storage is that the rate at which data may be communicated from one device to another, such as from a server to a client system, is finite and depends on a number of parameters, including the network bandwidth and the size of the communicated data file.
Various lossy and lossless compression techniques have been used to reduce the size of large data files in an attempt to minimize network traffic and to generally reduce the time required to communicate data from a server to a client. While reducing the size of the file through compression may reduce the amount of transit time of the data on the network, this does not always result in a client being able to use the data sooner than if the data were never compressed. Particularly, while the actual transit time may be lessened when the file size is reduced, it may take a significant amount of time for the server to actually compress the data file and for the client to decompress the data file. In some cases, the time required for compressing and decompressing the file may exceed the time saved in communicating a smaller file over a network and, thus, such techniques may actually decrease, rather than increase, network performance in communicating data.